"""
Filter 函数
- Filter 函数结合列表，元组，集合使用
- Filter 结合Lambda 使用
- Filter 中的None 参数
"""
# 过滤一个列表中的大于6的元素
numbs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = []
for num in numbs:
    if num > 6:
        result.append(num)

print(result)


# 1. 使用filter转化
def num_greater_6(num):
    if num > 6:
        return True
    return False


result_filter = filter(num_greater_6, numbs)
print(list(result_filter))

# 2. 结合lambda 函数使用
print(list(filter(lambda x: x > 6, numbs)))

# 3. filter 结合 列表，元组，集合
nums_list = [1, 2, 3, 4, 5, 6]
nums_tuple = (1, 2, 3, 4, 5, 6)
nums_set = {1, 2, 3, 4, 5, 6}


def check_even(num):
    if num % 2 == 0:
        return True
    return False


print(list(filter(check_even, nums_list)))
print(tuple(filter(check_even, nums_tuple)))
print(set(filter(check_even, nums_set)))

print(list(filter(lambda x: x % 2 == 0, nums_list)))

# 4. filter 过滤None 函数
a_list = [1, 'a', 0, False, True, '0', None, 'HELLO', 14]
print(list(filter(None, a_list)))
print(bool(None))
print(bool(0))
